from django.core.management.base import BaseCommand
from cmdb.models import HostType


class Command(BaseCommand):
    help = '创建默认的主机类型'

    def handle(self, *args, **options):
        default_types = [
            {
                'name': 'web',
                'display_name': 'Web服务器',
                'icon': 'fa-globe',
                'color': '#67C23A',
                'description': 'Web服务器，用于部署网站和Web应用',
                'is_system': True
            },
            {
                'name': 'db',
                'display_name': '数据库服务器',
                'icon': 'fa-database',
                'color': '#E6A23C',
                'description': '数据库服务器，用于存储和管理数据',
                'is_system': True
            },
            {
                'name': 'app',
                'display_name': '应用服务器',
                'icon': 'fa-server',
                'color': '#409EFF',
                'description': '应用服务器，用于运行业务应用',
                'is_system': True
            },
            {
                'name': 'cache',
                'display_name': '缓存服务器',
                'icon': 'fa-memory',
                'color': '#F56C6C',
                'description': '缓存服务器，用于提高系统性能',
                'is_system': True
            },
            {
                'name': 'lb',
                'display_name': '负载均衡器',
                'icon': 'fa-balance-scale',
                'color': '#909399',
                'description': '负载均衡器，用于分发网络流量',
                'is_system': True
            },
            {
                'name': 'monitor',
                'display_name': '监控服务器',
                'icon': 'fa-chart-line',
                'color': '#9C27B0',
                'description': '监控服务器，用于系统监控和告警',
                'is_system': True
            },
            {
                'name': 'other',
                'display_name': '其他',
                'icon': 'fa-question-circle',
                'color': '#606266',
                'description': '其他类型的服务器',
                'is_system': True
            }
        ]

        created_count = 0
        for type_data in default_types:
            host_type, created = HostType.objects.get_or_create(
                name=type_data['name'],
                defaults=type_data
            )
            if created:
                created_count += 1
                self.stdout.write(
                    self.style.SUCCESS(f'创建主机类型: {host_type.display_name}')
                )
            else:
                self.stdout.write(
                    self.style.WARNING(f'主机类型已存在: {host_type.display_name}')
                )

        self.stdout.write(
            self.style.SUCCESS(f'完成！共创建了 {created_count} 个默认主机类型。')
        )
